home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1985 September
/
1985-09.d64
/
printer wedge
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
4KB
|
120 lines
10 bs=1358:s0=160:s1=32:d0=209:d1=81:m=1:mf(0)=1:forj=1to6:m=m*2:mf(j)=m:next
20 printchr$(147)chr$(5)" printer wedge character designer"
30 printchr$(17)"move with cursor keys"
40 print"place dot with f7":print"erase dot with f8"
50 printchr$(17)"assign character with f1"
60 fori=1to5:printchr$(17):next:print"assign character string with f3"
70 print"activate wedge with f2"
80 ch=s0:fori=0to9:forj=0to6:gosub110:ar(i,j)=0:nextj:nexti
90 i=0:j=0:ch=s1:gosub110:goto140
100 i=0:j=0:ch=s1:gosub110:goto140
110 x=bs+i+j*40:pokex,ch:pokex+54272,1:return
120 getz$:ifz$=""then120
130 return
140 gosub120:dc=0:rem *character editor*
150 ifz$=chr$(29)thendc=1
160 ifz$=chr$(157)thendc=2
170 ifz$=chr$(17)thendc=3
180 ifz$=chr$(145)thendc=4
190 ifdc>0thengosub370:gosub380
200 ondcgosub290,310,330,350
210 gosub370:ifdc>0andlc=s0thench=s1:gosub110
220 ifdc>0andlc=d0thench=d1:gosub110
230 ifz$=chr$(136)thenar(i,j)=1:ch=d1:gosub110
240 ifz$=chr$(140)thenar(i,j)=0:ch=s1:gosub110
250 ifz$=chr$(133)then410
260 ifz$=chr$(137)thenprintchr$(147)chr$(17)"please wait":goto660
270 ifz$=chr$(134)then550
280 goto140
290 i=i+1:ifi>9theni=0
300 return
310 i=i-1:ifi<0theni=9
320 return
330 j=j+1:ifj>6thenj=0
340 return
350 j=j-1:ifj<0thenj=6
360 return
370 lc=peek(bs+i+j*40):return
380 iflc=s1thench=s0
390 iflc=d1thench=d0
400 gosub110:return
410 fori=0to9:rem *compute character*
420 cl(i)=128:forj=0to6:cl(i)=cl(i)+ar(i,j)*mf(j):nextj:nexti
430 print"assign character to which key?"
440 gosub120:z=asc(z$):b=3000+z*10:rem *print data statements*
450 printchr$(147)chr$(17)chr$(17)chr$(17)b"data"z" ";
460 fori=0to9:ifcl(i)=128andcl(i+1)=128then480
470 print","cl(i)chr$(157);:nexti
480 print:fordx=1to5:print3000+z*10+dx:next
490 print"run"chr$(19);:forj=1to3:printchr$(17);:next
500 forj=1to14:printchr$(29);:next:print","ichr$(19)
510 ifi>0then540
520 printchr$(19);:forj=1to3:printchr$(17);:next
530 forj=1to20:printchr$(32);:next
540 poke198,9:fori=0to8:poke631+i,13:next:end
550 printchr$(147)"enter character string":inputa$:l=len(a$):ifl<1orl>39then550
560 print"assign to which key?":gosub120:dx=0:z=asc(z$):i=1:b=3000+z*10+dx
570 printchr$(147)chr$(17)chr$(17)chr$(17)b"data"z" ,15,17";:lx=2
580 print","asc(mid$(a$,i,1))chr$(157);:lx=lx+1:i=i+1
590 iflx>9andi<=lthenlx=0:dx=dx+1:b=3000+z*10+dx:gosub650
600 ifi<=lthen580
610 print:fordx=dx+1to5:print3000+z*10+dx:next
620 print"run"chr$(19);:forj=1to3:printchr$(17);:next
630 forj=1to14:printchr$(29);:next:print","l+2
640 printchr$(19):poke198,9:fori=0to8:poke631+i,13:next:end
650 printchr$(13)b"data"asc(mid$(a$,i,1))chr$(157);:lx=lx+1:i=i+1:return
660 fori=57344to57452:rem poke hi code
670 reada:pokei,a:next
680 printchr$(147)" where should pwedge be located?"
690 printchr$(17)"854 = cassette buffer"
700 print"679 = unused ram (maybe)"
710 print"49152 = reserved for ml programs"
720 printchr$(17)"location 854"chr$(157)chr$(157)chr$(157)chr$(157)chr$(157);
730 inputba:fori=batoba+59:reada:pokei,a:next
740 ifba=854then830
750 p=ba+60:gosub990:pokeba+10,l:pokeba+11,h:pokeba+49,l:pokeba+50,h
760 p=ba+61:gosub990:pokeba+13,l:pokeba+14,h:pokeba+52,l:pokeba+53,h
770 p=ba+62:gosub990:pokeba+1,l:pokeba+2,h:pokeba+55,l:pokeba+56,h
780 poke57354,l:poke57355,h:poke57449,l:poke57450,h
790 p=ba+64:gosub990:pokeba+39,l:pokeba+40,h:poke57409,l:poke57410,h
800 poke57425,l:poke57426,h:poke57437,l:poke57438,h
810 poke57443,l:poke57444,h
820 p=ba+25:gosub990:poke57395,l:poke57396,h
830 p=ba:gosub990:poke806,l:poke807,h
840 rem poke character data
850 i=57601:ct=0:z=i+256
860 readc:ifc=0thenpokez-257,ct:pokez+255,0:goto910
870 readl:if(l+i+3)>=zthen890
880 pokei,c:pokei+1,l:fork=1tol:reada:pokei+1+k,a:next:i=i+l+2:ct=ct+1:goto860
890 pokez-257,ct:ct=1:i=z:z=i+256:pokei,c:pokei+1,l
900 fork=1tol:reada:pokei+1+k,a:next:i=i+l+2:goto860
910 printchr$(147)"pwedge is now installed."
920 printchr$(17)"do you want a printer test?"
930 gosub120:ifz$<>"y"thenend
940 open4,4,7:print#4,"the quick brown fox jumped over the lazy dog."
950 fori=33to64:print#4,chr$(i);:next:print#4
960 fori=65to96:print#4,chr$(i);:next:print#4
970 fori=193to218:print#4,chr$(i);:next:print#4:close4
980 end
990 h=int(p/256):l=p-h*256:return
1000 rem *hi code*
1010 data 172,0,225,192,0,240,32,162,1,173
1020 data 148,3,221,0,225,240,36,232,138,24
1030 data 125,0,225,170,232,136,208,237,238,2
1040 data 224,238,14,224,238,22,224,208,217,169
1050 data 225,141,2,224,141,14,224,141,22,224
1060 data 76,111,3,173,2,224,141,70,224,141
1070 data 79,224,169,8,141,150,3,232,189,0
1080 data 225,141,109,224,160,1,232,189,0,225
1090 data 153,150,3,232,200,206,109,224,208,243
1100 data 169,128,153,150,3,200,169,15,153,150
1110 data 3,200,169,17,141,148,3,208,186
1200 rem *lo code*
1210 data 141,148,3,165,154,201,4,208,45,142
1220 data 146,3,140,147,3,120,165,1,41,253
1230 data 133,1,76,0,224,165,1,9,2,133
1240 data 1,88,192,0,240,12,162,0,189,150
1250 data 3,32,202,241,232,136,208,246,174,146
1260 data 3,172,147,3,173,148,3,76,202,241
10000 data 0